On doit à Niklaus Wirth plusieurs langages de programmation, notamment EULER, Pascal et son évolution Modula. On lui doit également la loi de Wirth, formulée en 1995 dans son « Plaidoyer pour des programmes légers ». Elle dit que « les programmes ralentissent plus vite que le matériel n'accélère », en opposition donc à la Loi de Moore.
Dans les années 60, il était professeur à Stanford, avant de revenir en Suisse, à l’École polytechnique fédérale de Zurich où il était professeur d’informatique jusqu’en 1999. En 1984, il est le lauréat du prix Turing, que l’on compare régulièrement au Nobel de l’informatique.
Il est décédé ce 1ᵉʳ janvier 2024, à l’aube de ses 90 ans. L’École polytechnique fédérale de Zurich consacre un long article à sa carrière.
Commentaires (18)
#1
Je n'ai personnellement jamais utilisé ce langage ou ses dérivés, mais je pense qu'il a marquè beaucoup de monde.
#2
J'ai appris la programmation avec Pascal et Modula.
PS: Il marche chez vous le lien vers l'EPFZ ?
#2.1
#2.2
#3
(...)
END
http://ctp.mkprog.com/en/pascal/block_statement/
Le langage était utilisé en prépa scientifique, à la fin des années 80/début 90, comme introduction à la programmation. Un peu grâce à Borland et son Turbo-Pascal il faut bien le dire!
Ensuite en école d'ingé c'est le C qui régnait déjà, avec le C++ qui commençait à prendre (bien poussé par les interfaces graphiques qui se généralisaient).
#3.1
#4
Et surtout, j'ai réussi à éviter Delphi, très mauvais héritier de Pascal
Sinon Wirth a tout à fait raison concernant la lourdeur des logiciels qui croît avec la puissance des machines, c'est lié au "creeping featurism" qui engloutit des ressources pour rien ...
#4.1
#5
J'aimerais tellement que l'on puisse un jour faire mentir cette loi.
#5.1
Pas certain ce que ce soit forcément une bonne idée.
Dans le cas ou le ralentissement relatif est causé par l'ajout bloatware marketing, ok.
Vivement qu'on arrête l' enshittification
Mais ce ralentissement c'est souvent le prix a payer pour la modularité/abstraction.
Et si l'informatique évolue aussi vite, c'est qu'on peut concevoir de nouveaux programmes en assemblant des packages, bibliothèques et modules. Docker for the win \o/
#5.2
Le concept de conteneur se justifie pour border des trucs offrant une confiance relative ou faire tourner des vieux trucs qu'on ne sait plus maintenir (par exemple car leur source date d'avant la généralisation des outils de gestion de code/versions), mais pour faire tourner de la merde codée quick&dirty moi j'appelle cela violer le concept.
#5.3
Non ?
#5.7
#5.4
Quand il ne sera plus rentable de faire comme cela, les programmeurs auront enfin la possibilité de justifier de passer le temps qu'il faut pour faire bien.
#5.5
Il a fallu des années a certaines bibliothèques pour arriver a un haut degré de stabilité et sécurité. Je suis certain qu''un dev seul peut faire un code plus rapide et moins lourd... Mais aussi stable et sécurisé ?
#5.6
Je pense entre autre aux mêmes exemples que toi avec des gens qui se sentent capables de faire mieux qu'apache ou nginx avec un proof of concept pondu par une IA célèbre, pour une api accessible publiquement.
Dans mon précédent post, je faisais référence au code mort lié à l'inclusion de bibliothèques entières au lieu de sélectionner ce qu'il faut, quand cela est possible.
#6
Pour comprendre cette loi, il suffit de regarder du code des années 80/90 encore utilisé très largement aujourd'hui car d'une incroyable efficacité. Quelques exemple ? grep, sed, awk...
On doit aussi à Niklaus Wirth le P-code, du code semi-compilé, interprété pour exécution, ce qui permettait d'avoir un compilateur unique et un interpréteur de P-code par plateforme matérielle.
Ce concept sera repris dans... Java !
J'ai beaucoup programmé en Pascal sur Macintosh, un langage clairement pensé pour avoir de bonnes pratiques de programmation (toutes les variables sont typée et déclarées en début de fonction).
Souvenir aussi d'heures passées à lire son livre "Algorithmes et structures de données", qui est encore dans mon bureau !
#6.1
Le Pascal a été créé pour être un langage d'enseignement.
J'ai longtemps gardé le listing sur papier de son compilateur Pascal, écrit bien sûr lui-même en Pascal. Il n'a pas survécu à mon dernier déménagement.